<?php


/*
退款请求API
*/
//获取时间戳
$currentTime = date("YmdHis");

//生成随机单号
mt_rand($min,$max);
$number = mt_rand(13021003,999999999);
echo $number;
echo "<br/><hr>";


/*
  注意：agent_bill_id和refund_details为互斥参数，必须传其中一个参数。默认使用agent_bill_id，当agent_bill_id为空使用refund_details。单笔全额退款使用agent_bill_id参数，批量部分退款使用refund_details参数。
*/
//定义参数值
$version = '1';//版本号
$agent_id = '1664502';//商户编号
$agent_bill_id = '994360938';//商户系统内部的订单号（要保证唯一）
$refund_details = '994360938,0.01,ceshitkuan';//商户原支付单号，金额，商户退款单号 分割最多支持50笔
$agent_bill_time = $currentTime;//提交单据的时间yyyyMMddHHmmss
$notify_url = 'https://';//异步通知地址
$key = '1C3A345D4F1E48B7A02B90AC';//密钥

// 请求参数（使用 & 符号拼接）
if (empty($refund_details)){
    $data = "agent_bill_id=$agent_bill_id&agent_id=$agent_id&key=$key&notify_url=$notify_url&version=$version";
    echo '待加密数据-------------->'.$data;
    echo "<br/><hr>";
    $sign = md5(strtolower($data));;
    echo '加密后数据'.$sign;
    echo "<br/><hr>";
    $param = "version=$version&agent_id=$agent_id&agent_bill_id=$agent_bill_id&agent_bill_time=$agent_bill_time&sign=$sign&notify_url=$notify_url";
    echo '待请求参数-------------->'.$param;
    echo "<br/><hr>";
}else{
    $data = "agent_id=$agent_id&key=$key&notify_url=$notify_url&refund_details=$refund_details&version=$version";
    echo '待加密数据-------------->'.$data;
    echo "<br/><hr>";
    $sign = md5(strtolower($data));;
    echo '加密后数据'.$sign;
    echo "<br/><hr>";
    $param = "version=$version&agent_id=$agent_id&refund_details=$refund_details&agent_bill_time=$agent_bill_time&sign=$sign&notify_url=$notify_url";
    echo '待请求参数-------------->'.$param;
    echo "<br/><hr>";
}


//请求地址
$url = 'https://pay.heepay.com/API/Payment/PaymentRefund.aspx';

// 构建请求上下文
$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded',
        'content' => $param
    )
);
$context = stream_context_create($options);

// 发送 POST 请求
$response = file_get_contents($url, false, $context);


$responsed = iconv('GBK', 'UTF-8', $response);

echo $responsed;


?>